Oracle® Database

Client Installation Guide

12c Release 2 (12.2) for Linux

1      Oracle Database Client Installation Checklist

1.1     Operating System Checklist for Oracle Database Client on Linux

minimum operating system requirements for Oracle Database Client.

-          Oracle Linux 7 with the Red Hat Compatible kernel: 3.10.0-123.el7.x86_64  or later

-          Red Hat Enterprise Linux 7: 3.10.0-123.el7.x86_64 or later

1.2     Server Configuration Checklist for Oracle Database Client

1.2.1 Disk space allocated to the /tmp directory

>400MB

1.2.2 Swap space allocation relative to RAM:

256 MB: 3 times the size of RAM

Between 256 MB and 512 MB: 2 times the size of RAM

Between 512 MB and 2 GB: 1.5 times the size of RAM

Between 2 GB and 16 GB: Equal to the size of RAM

More than 16 GB: 16 GB

1.2.3 Oracle Inventory (oraInventory) and OINSTALL Group Requirements      

For upgrades, Oracle Universal Installer (OUI) detects an existing oraInventory directory from the /etc/oraInst.loc file, and uses the existing oraInventory.

For new installs, if you have not configured an oraInventory directory, then the installer creates an Oracle inventory that is one directory level up from the Oracle base for the Oracle Grid Infrastructure install, and designates the installation owner's primary group as the Oracle Inventory group.

The Oracle Inventory directory is the central inventory of Oracle software installed on your system. Users who have the Oracle Inventory group as their primary group are granted the OINSTALL privilege to write to the central inventory.

The OINSTALL group must be the primary group of all Oracle software installation owners on the server. It should be writable by any Oracle installation owner.

1.3     Oracle User Environment Configuration Checklist for Oracle Database Installation

1.3.1 Review Oracle Inventory (oraInventory) and OINSTALL Group Requirements

The physical group you designate as the Oracle Inventory directory is the central inventory of Oracle software installed on your system. It should be the primary group for all Oracle software installation owners. Users who have the Oracle Inventory group as their primary group are granted the OINSTALL privilege to read and write to the central inventory.

If you have an existing installation, then OUI detects the existing oraInventory directory from the/etc/oraInst.loc file, and uses this location.

If you are installing Oracle software for the first time, then OUI creates an Oracle base and central inventory, and creates an Oracle inventory using information in the following priority:

In the path indicated in the ORACLE_BASE environment variable set for the installation owner user account.

In an Optimal Flexible Architecture (OFA) path (u[01–99]/app/owner where owner is the name of the user account running the installation), if that user account has permissions to write to that path.

In the user home directory, in the path /app/owner, where owner is the name of the user account running the installation.

Ensure that the group designated as the OINSTALL group is available as the primary group for all planned Oracle software installation owners.

1.3.2 Create operating system groups and users for standard or role-allocated system privileges

Create operating system groups and users depending on your security requirements, as described in this install guide.

Set resource limits settings and other requirements for Oracle software installation owners.

Group and user names must use only ASCII characters.

1.3.3 Unset Oracle Software Environment Variables

If you have had an existing installation on your system, and you are using the same user account to install this installation, then unset the ORACLE_HOME, ORACLE_BASE, ORACLE_SID, TNS_ADMIN environment variables and any other environment variable set for the Oracle installation user that is connected with Oracle software homes.

1.3.4 Configure the Oracle Software Owner Environment

Configure the environment of the oracle or grid user by performing the following tasks:

Set the default file mode creation mask (umask) to 022 in the shell startup file.

Set the DISPLAY environment variable.

2       Checking and Configuring Server Hardware for Oracle Database Client

2.1     Logging In to a Remote System Using X Window System

Use this procedure to run Oracle Universal Installer (OUI) by logging on to a remote system where the runtime setting prohibits logging in directly to a graphical user interface (GUI).

OUI is a graphical user interface (GUI) application. On servers where the runtime settings prevent GUI applications from running, you can redirect the GUI display to a client system connecting to the server.

Note: If you log in as another user (for example, oracle or grid), then repeat this procedure for that user as well.

Start an X Window System session. If you are using an X Window System terminal emulator from a PC or similar system, then you may need to configure security settings to permit remote hosts to display X applications on your local system.

Enter a command using the following syntax to enable remote hosts to display X applications on the local X server:

# xhost + RemoteHost

RemoteHost is the fully qualified remote host name. For example:

# xhost + somehost.example.com

somehost.example.com being added to the access control list

If you are not installing the software on the local system, then use the ssh command to connect to the system where you want to install the software:

# ssh -Y  RemoteHost

RemoteHost is the fully qualified remote host name. The -Y flag ("yes") enables remote X11 clients to have full access to the original X11 display. For example:

# ssh -Y somehost.example.com

If you are not logged in as the root user, and you are performing configuration steps that require root user privileges, then switch the user to root.

Note: For more information about remote login using X Window System, refer to your X server documentation, or contact your X server vendor or system administrator. Depending on the X server software that you are using, you may have to complete the tasks in a different order.

2.2     Checking Server Hardware and Memory Configuration

Use this procedure to gather information about your server configuration.

Use the following command to determine physical RAM size on the server:

# grep MemTotal /proc/meminfo

If the size of the physical RAM installed in the system is less than the required size, then you must install more memory before continuing.

Determine the size of the configured swap space:

# grep SwapTotal /proc/meminfo

If necessary, see your operating system documentation for information about how to configure additional swap space.

Determine the amount of space available in the /tmp directory:

# df -h /tmp

If the free space available in the /tmp directory is less than what is required, then complete one of the following steps:

Delete unnecessary files from the /tmp directory to meet the disk space requirement.

When you set the Oracle user's environment, also set the TMP and TMPDIR environment variables to the directory you want to use instead of /tmp.

Determine the amount of free RAM and disk swap space on the system:

# free

Determine if the system architecture can run the software:

# uname -m

Verify that the processor architecture matches the Oracle software release to install. For example, you should see the following for a x86-64 bit system:

x86_64

If you do not see the expected output, then you cannot install the software on this system.

Verify that shared memory (/dev/shm) is mounted properly with sufficient size:

df -h /dev/shm

The df-h command displays the filesystem on which /dev/shm is mounted, and also displays in GB the total size and free size of shared memory.

3      Configuring Operating Systems for Oracle Database Client on Linux

3.1     Operating System Requirements for x86-64 Linux Platforms

The Linux distributions and packages listed in this section are supported for this release on x86-64.

Identify the requirements for your Linux distribution, and ensure that you have a supported kernel and required packages installed before starting installation.

Note:

Oracle Universal Installer requires an X Window System (for example, libx). The libx packages are part of a default Linux installation. If you perform an installation on a system with a reduced set of packages, then you must ensure that libx or a similar X Window System package is installed.

The Unbreakable Enterprise Kernel for Oracle Linux can be installed on x86-64 servers running either Oracle Linux or Red Hat Enterprise Linux. As of Oracle Linux 5 Update 6, the Unbreakable Enterprise Kernel is the default system kernel. An x86 (32-bit) release of Oracle Linux including the Unbreakable Enterprise Kernel is available with Oracle Linux 5 update 7 and later.

32-bit packages in these requirements lists are needed only if you intend to use 32-bit client applications to access 64-bit servers.

Oracle Database 12c Release 2 (12.2) and later does not require the compiler packages gcc and gcc-c++ on Oracle Linux and Red Hat Enterprise Linux for Oracle Database or Oracle Grid Infrastructure installations.

The platform-specific hardware and software requirements included in this guide were current when this guide was published. However, because new platforms and operating system software versions may be certified after this guide is published, review the certification matrix on the My Oracle Support website for the most up-to-date list of certified hardware platforms and operating system versions:

3.2     Supported Oracle Linux 7 Distributions for x86-64

Subscribe to the Oracle Linux 7 channel on the Unbreakable Linux Network, or configure a yum repository from the Oracle Linux yum server website, and then install the Oracle Preinstallation RPM. This RPM installs all required kernel packages for Oracle Grid Infrastructure and Oracle Database installations, and performs other system configuration.

Supported distributions:

Oracle Linux 7 with the Unbreakable Enterprise Kernel 3: 3.8.13-35.3.1.el7uek.x86_64 or later

Oracle Linux 7.2 with the Unbreakable Enterprise Kernel 4: 4.1.12-32.2.3.el7uek.x86_64 or later

Oracle Linux 7 with the Red Hat Compatible kernel: 3.10.0-123.el7.x86_64 or later

bc

binutils-2.23.52.0.1-12.el7 (x86_64)

compat-libcap1-1.10-3.el7 (x86_64)

compat-libstdc++-33-3.2.3-71.el7 (i686)

compat-libstdc++-33-3.2.3-71.el7 (x86_64)

glibc-2.17-36.el7 (i686)

glibc-2.17-36.el7 (x86_64)

glibc-devel-2.17-36.el7 (i686)

glibc-devel-2.17-36.el7 (x86_64)

ksh

libaio-0.3.109-9.el7 (i686)

libaio-0.3.109-9.el7 (x86_64)

libaio-devel-0.3.109-9.el7 (i686)

libaio-devel-0.3.109-9.el7 (x86_64)

libX11-1.6.0-2.1.el7 (i686)

libX11-1.6.0-2.1.el7 (x86_64)

libXau-1.0.8-2.1.el7 (i686)

libXau-1.0.8-2.1.el7 (x86_64)

libXi-1.7.2-1.el7 (i686)

libXi-1.7.2-1.el7 (x86_64)

libXtst-1.2.2-1.el7 (i686)

libXtst-1.2.2-1.el7 (x86_64)

libXrender (i686)

libXrender (x86_64)

libXrender-devel (i686)

libXrender-devel (x86_64)

libgcc-4.8.2-3.el7 (i686)

libgcc-4.8.2-3.el7 (x86_64)

libstdc++-4.8.2-3.el7 (i686)

libstdc++-4.8.2-3.el7 (x86_64)

libstdc++-devel-4.8.2-3.el7 (i686)

libstdc++-devel-4.8.2-3.el7 (x86_64)

libxcb-1.9-5.el7 (i686)

libxcb-1.9-5.el7 (x86_64)

make-3.82-19.el7 (x86_64)

nfs-utils-1.3.0-0.21.el7.x86_64 (for Oracle ACFS)

net-tools-2.0-0.17.20131004git.el7 (x86_64) (for Oracle RAC and Oracle Clusterware)

smartmontools-6.2-4.el7 (x86_64)

sysstat-10.1.5-1.el7 (x86_64)

3.3         Supported Red Hat Enterprise Linux 7 Distributions for x86-64

bc

binutils-2.23.52.0.1-12.el7 (x86_64)

compat-libcap1-1.10-3.el7 (x86_64)

compat-libstdc++-33-3.2.3-71.el7 (i686)

compat-libstdc++-33-3.2.3-71.el7 (x86_64)

glibc-2.17-36.el7 (i686)

glibc-2.17-36.el7 (x86_64)

glibc-devel-2.17-36.el7 (i686)

glibc-devel-2.17-36.el7 (x86_64)

ksh

libaio-0.3.109-9.el7 (i686)

libaio-0.3.109-9.el7 (x86_64)

libaio-devel-0.3.109-9.el7 (i686)

libaio-devel-0.3.109-9.el7 (x86_64)

libgcc-4.8.2-3.el7 (i686)

libgcc-4.8.2-3.el7 (x86_64)

libstdc++-4.8.2-3.el7 (i686)

libstdc++-4.8.2-3.el7 (x86_64)

libstdc++-devel-4.8.2-3.el7 (i686)

libstdc++-devel-4.8.2-3.el7 (x86_64)

libxcb-1.9-5.el7 (i686)

libxcb-1.9-5.el7 (x86_64)

libX11-1.6.0-2.1.el7 (i686)

libX11-1.6.0-2.1.el7 (x86_64)

libXau-1.0.8-2.1.el7 (i686)

libXau-1.0.8-2.1.el7 (x86_64)

libXi-1.7.2-1.el7 (i686)

libXi-1.7.2-1.el7 (x86_64)

libXtst-1.2.2-1.el7 (i686)

libXtst-1.2.2-1.el7 (x86_64)

libXrender (i686)

libXrender (x86_64)

libXrender-devel (i686)

libXrender-devel (x86_64)

make-3.82-19.el7 (x86_64)

net-tools-2.0-0.17.20131004git.el7 (x86_64) (for Oracle RAC and Oracle Clusterware)

nfs-utils-1.3.0-0.21.el7.x86_64 (for Oracle ACFS)

smartmontools-6.2-4.el7 (x86_64)

sysstat-10.1.5-1.el7 (x86_64)

4      Configuring Users, Groups and Environments for Oracle Database Client

Before installation, create operating system groups and users, and configure user environments.

4.1     Required Operating System Groups and Users

Oracle software installations require an installation owner, an Oracle Inventory group, which is the primary group of all Oracle installation owners, and at least one group designated as a system privileges group.

Review group and user options with your system administrator. If you have system administration privileges, then review the topics in this section and configure operating system groups and users as needed.

4.1.1 Determining If an Oracle Inventory and Oracle Inventory Group Exist

Determine if you have an existing Oracle central inventory, and ensure that you use the same Oracle Inventory for all Oracle software installations. Also, ensure that all Oracle software users you intend to use for installation have permissions to write to this directory.

When you install Oracle software on the system for the first time, OUI creates the oraInst.loc file. This file identifies the name of the Oracle Inventory group (by default, oinstall), and the path of the Oracle central inventory directory. If you have an existing Oracle central inventory, then ensure that you use the same Oracle Inventory for all Oracle software installations, and ensure that all Oracle software users you intend to use for installation have permissions to write to this directory.

An oraInst.loc file contains lines in the following format, where central_inventory_location is the path to an existing Oracle central inventory, and group is the name of the operating system group whose members have permissions to write to the central inventory:

inventory_loc=central_inventory_location

inst_group=group

Use the more command to determine if you have an Oracle central inventory on your system. For example:

# more /etc/oraInst.loc

inventory_loc=/u01/app/oraInventory

inst_group=oinstall

Use the command grep groupname /etc/group to confirm that the group specified as the Oracle Inventory group still exists on the system. For example:

$ grep oinstall /etc/group

oinstall:x:54321:grid,oracle

Note:

Do not put the oraInventory directory under the Oracle base directory for a new installation, because that can result in user permission errors for other installations.

4.1.2 Creating the Oracle Inventory Group If an Oracle Inventory Does Not Exist

Create an Oracle Inventory group manually as part of a planned installation, particularly where more than one Oracle software product is installed on servers.

By default, if an oraInventory group does not exist, then the installer uses the primary group of the installation owner for the Oracle software being installed as the oraInventory group. Ensure that this group is available as a primary group for all planned Oracle software installation owners.

If the oraInst.loc file does not exist, then create the Oracle Inventory group by entering a command similar to the following:

# /usr/sbin/groupadd -g 54321 oinstall

4.1.3 About Oracle Installation Owner Accounts  

Select or create an Oracle installation owner for your installation, depending on the group and user management plan you want to use for your installations.

You must create a software owner for your installation in the following circumstances:

If an Oracle software owner user does not exist; for example, if this is the first installation of Oracle software on the system.

If an Oracle software owner user exists, but you want to use a different operating system user, with different group membership, to separate Oracle Grid Infrastructure administrative privileges from Oracle Database administrative privileges.

In Oracle documentation, a user created to own only Oracle Grid Infrastructure software installations is called the Grid user (grid). This user owns both the Oracle Clusterware and Oracle Automatic Storage Management binaries. A user created to own either all Oracle installations, or one or more Oracle database installations, is called the Oracle user (oracle). You can have only one Oracle Grid Infrastructure installation owner, but you can have different Oracle users to own different installations.

Oracle software owners must have the Oracle Inventory group as their primary group, so that each Oracle software installation owner can write to the central inventory (oraInventory), and so that OCR and Oracle Clusterware resource permissions are set correctly. The database software owner must also have the OSDBA group and (if you create them) the OSOPER, OSBACKUPDBA, OSDGDBA, OSRACDBA, and OSKMDBA groups as secondary groups.

4.1.4 Identifying an Oracle Software Owner User Account

You must create at least one software owner user account the first time you install Oracle software on the system. Either use an existing Oracle software user account, or create an Oracle software owner user account for your installation.

To use an existing user account, obtain from you system administrator the name of an existing Oracle installation owner. Confirm that the existing owner is a member of the Oracle Inventory group.

For example if you know that the name of the Oracle Inventory group is oinstall, then an Oracle software owner should be listed as a member of oinstall.:

$ grep "oinstall" /etc/group

oinstall:x:54321:oracle

You can then use the ID command to verify that the Oracle installation owners you intend to use have the Oracle Inventory group as their primary group. For example:$ id oracle

uid=54321(oracle) gid=54321(oinstall) groups=54321(oper),54322(dba)

After you create operating system groups, create or modify Oracle user accounts in accordance with your operating system authentication planning.

4.2     Creating Operating System Oracle Installation User Accounts

4.2.1 Creating an Oracle Software Owner User

If the Oracle software owner user (oracle ) does not exist, or if you require a new Oracle software owner user, then create it as described in this section.

The following example shows how to create the user oracle with the user ID 54321; with the primary group oinstall; and with secondary group dba.

# /usr/sbin/useradd -u 54321 -g oinstall -G dba, oracle

You must note the user ID number for installation users, because you need it during preinstallation.

For Oracle Grid Infrastructure Installations, user IDs and group IDs must be identical on all candidate nodes.

4.2.2 Environment Requirements for Oracle Software Owners

You must make the following changes to configure Oracle software owner environments:

Set the installation software owner user (grid, oracle) default file mode creation mask (umask) to 022 in the shell startup file. Setting the mask to 022 ensures that the user performing the software installation creates files with 644 permissions.

Set ulimit settings for file descriptors and processes for the installation software owner (grid, oracle).

Set the DISPLAY environment variable in preparation for running an Oracle Universal Installer (OUI) installation.

Caution: If you have existing Oracle installations that you installed with the user ID that is your Oracle Grid Infrastructure software owner, then unset all Oracle environment variable settings for that user.

4.2.3 Procedure for Configuring Oracle Software Owner Environments

Configure each Oracle installation owner user account environment:

Start an X terminal session (xterm) on the server where you are running the installation.

Enter the following command to ensure that X Window applications can display on this system, where hostname is the fully qualified name of the local host from which you are accessing the server:

$ xhost + hostname

If you are not logged in as the software owner user, then switch to the software owner user you are configuring. For example, with the user grid:

$ su - grid

On systems where you cannot run su commands, use sudo instead:

$ sudo -u grid -s

To determine the default shell for the user, enter the following command:

$ echo $SHELL

Open the user's shell startup file in any text editor:

Bash shell (bash):

$ vi .bash_profile

Bourne shell (sh) or Korn shell (ksh):

$ vi .profile

C shell (csh or tcsh):

% vi .login

Enter or edit the following line, specifying a value of 022 for the default file mode creation mask:

umask 022

If the ORACLE_SID, ORACLE_HOME, or ORACLE_BASE environment variables are set in the file, then remove these lines from the file.

Save the file, and exit from the text editor.

To run the shell startup script, enter one of the following commands:

Bash shell:

$ . ./.bash_profile

Bourne, Bash, or Korn shell:

$ . ./.profile

C shell:

% source ./.login

Use the following command to check the PATH environment variable:

$ echo $PATH

Remove any Oracle environment variables.

If you are not installing the software on the local system, then enter a command similar to the following to direct X applications to display on the local system:

Bourne, Bash, or Korn shell:

$ export DISPLAY=local_host:0.0

C shell:

% setenv DISPLAY local_host:0.0

In this example, local_host is the host name or IP address of the system (your workstation, or another client) on which you want to display the installer.

If the /tmp directory has less than 1 GB of free space, then identify a file system with at least 1 GB of free space and set the TMP and TMPDIR environment variables to specify a temporary directory on this file system:

Note: You cannot use a shared file system as the location of the temporary file directory (typically /tmp) for Oracle RAC installations. If you place /tmp on a shared file system, then the installation fails.

Use the df -h command to identify a suitable file system with sufficient free space.

If necessary, enter commands similar to the following to create a temporary directory on the file system that you identified, and set the appropriate permissions on the directory:

$ sudo - s

# mkdir /mount_point/tmp

# chmod 775 /mount_point/tmp

# exit

Enter commands similar to the following to set the TMP and TMPDIR environment variables:

Bourne, Bash, or Korn shell:

$ TMP=/mount_point/tmp

$ TMPDIR=/mount_point/tmp

$ export TMP TMPDIR

C shell:

% setenv TMP /mount_point/tmp

% setenv TMPDIR /mount_point/tmp

To verify that the environment has been set correctly, enter the following commands:

$ umask

$ env | more

Verify that the umask command displays a value of 22, 022, or 0022 and that the environment variables you set in this section have the correct values.

4.2.4 Setting Remote Display and X11 Forwarding Configuration

If you are on a remote terminal, and the local system has only one visual (which is typical), then use the following syntax to set your user account DISPLAY environment variable:

Remote Display

Bourne, Korn, and Bash shells

$ export DISPLAY=hostname:0

C shell

% setenv DISPLAY hostname:0

For example, if you are using the Bash shell and if your host name is local_host, then enter the following command:

$ export DISPLAY=node1:0

X11 Forwarding

To ensure that X11 forwarding does not cause the installation to fail, use the following procedure to create a user-level SSH client configuration file for Oracle installation owner user accounts:

Using any text editor, edit or create the software installation owner's ~/.ssh/config file.

Ensure that the ForwardX11 attribute in the ~/.ssh/config file is set to no. For example:

Host *

    ForwardX11 no

Ensure that the permissions on ~/.ssh are secured to the Oracle installation owner user account. For example:

$ ls -al .ssh

total 28

drwx------  2 grid oinstall 4096 Jun 21 2015

drwx------ 19 grid oinstall 4096 Jun 21 2015

-rw-r--r--  1 grid oinstall 1202 Jun 21 2015 authorized_keys

-rwx------  1 grid oinstall  668 Jun 21 2015 id_dsa

-rwx------  1 grid oinstall  601 Jun 21 2015 id_dsa.pub

-rwx------  1 grid oinstall 1610 Jun 21 2015 known_hosts

4.3     Unsetting Oracle Installation Owner Environment Variables

Unset Oracle installation owner environment variables before you start the installation.

The environment variables you have set for the Oracle installation owner account you use to run the installation can cause issues if they are set to values that conflict with the values needed for installation.

If you have set ORA_CRS_HOME as an environment variable, following instructions from Oracle Support, then unset it before starting an installation or upgrade. You should never use ORA_CRS_HOME as an environment variable except under explicit direction from Oracle Support.

If you have had an existing installation on your system, and you are using the same user account to install this installation, then unset the following environment variables: ORA_CRS_HOME, ORACLE_HOME, ORA_NLS10, TNS_ADMIN, and any other environment variable set for the Oracle installation user that is connected with Oracle software homes.

Also, ensure that the $ORACLE_HOME/bin path is removed from your PATH environment variable.